package login;

import admin.user;
import books.Book;
import books.borrow;
import util.JDBC;
import util.bao;

import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import static jdk.nashorn.internal.runtime.Debug.id;
import static jdk.nashorn.internal.runtime.Debug.intId;

public class login {
        public static Scanner scanner=new Scanner(System.in);
        public static bao dbDao=new bao();
        public static void main(String[] args) {

            login main = new login();
            System.out.println("欢迎使用图书馆管理系统");
            System.out.println("1.登录        2.注册");
            System.out.println("请选择你要进行的操作：");
            int choose1 = scanner.nextInt();
            switch (choose1) {       //switch...case语句
                case 1:

                    System.out.println("使用什么身份登录？");
                    System.out.println("1.管理员         2.学生");
                    int choose3 = scanner.nextInt();
                    switch (choose3) {
                        case 1:
                            if (bao.denglu()) {
                                main.caozuo();
                            }
                            break;
                        case 2:
                            if (bao.xsdenglu()) {
                                main.xscaozuo();
                            }
                            break;
                    }

                case 2:

                    System.out.println("使用什么身份注册？");
                    System.out.println("1.管理员         2.学生");
                    int choose2 = scanner.nextInt();
                    switch (choose2) {
                        case 1:
                            if (bao.zhuce()) {
                                if (bao.denglu()) {
                                    main.caozuo();
                                } else {
                                    System.out.println("登录失败！！！");
                                    System.exit(0);     //程序终止
                                }
                            } else {
                                System.out.println("管理员身份注册失败");
                                System.exit(0);
                            }
                            break;
                        case 2:
                            if (bao.xszhuce()) {
                                if (bao.xsdenglu()) {
                                    main.xscaozuo();
                                } else {
                                    System.out.println("登录失败！！！");
                                    System.exit(0);
                                }
                            } else {
                                System.out.println("学生身份注册失败");
                                System.exit(0);
                            }
                            break;

                    }
            }
        }

        //登陆后才能进行操作
        public  void caozuo(){
            int a=-1;
            while(a==-1) {
                System.out.println();
                System.out.println("---------------------管理员操作-----------------------");
                System.out.println(" 1.新图书入库\t" +
                        "2.	图书更新（修改）\t" +
                        "3.	旧图书删除\t" +
                        "4.	切换到学生登录\t" +
                        "5. 查询所有图书\t"+
                        "6. 查询借出的图书\t"+
                        "7. 查询全部学生信息\t"+
                        "8. 退出操作\t");
                System.out.println("请选择你要进行的操作：");
                int choose1 = scanner.nextInt();
                switch (choose1) {
                    case 1:     //图书入库
                        insertNewbook();
                        break;
                    case 2:     //图书信息更改
                        updatebook();
                        break;
                    case 3:     //删除图书
                        deleteBook();
                        break;
                    case 4:     //切换账户类型
                        cut2();
                        break;
                    case 5:     //查询所有图书
                        bao.bookInof();
                        break;
                    case 6:     //查询借出的图书
                        bao.inquireBook();
                        break;
                    case 7:     //查询全部学生信息
                        inof();
                        break;
                    case 8:
                        a=0;
                        System.out.println("欢迎下次使用借书系统！！！");
                        System.exit(0);     //程序终止
                        break;

                }
            }

        }


    public  void xscaozuo(){
        int b=-1;
        while(b==-1) {
            System.out.println();
            System.out.println("---------------------学生操作-----------------------");
            System.out.println("1.借书\t" +
                    "2.	还书\t" +
                    "3. 查询所有图书\t"+
                    "4. 查询借出的书\t"+
                    "5. 切换到管理员登录\t"+
                    "6.	退出操作\t");
            System.out.println("请选择你要进行的操作：");
            int choose1 = scanner.nextInt();
            switch (choose1) {
                case 1:
                    borrow();   //借书
                    break;
                case 2:
                    return_book(); //还书
                    break;
                case 3:
                    bao.bookInof();  //查询所有图书
                    break;
                case 4:
                    bao.inquireBook();      //查询借出的图书
                    break;
                case 5:
                    cut1();     //切换用户类型
                    break;
                case 6:
                    b=0;
                    System.out.println("欢迎下次使用借书系统！！！");
                    System.exit(0);     //程序终止
                    break;
            }
        }
    }
    //账户类型切换
    public void cut1(){
        if(bao.denglu()){
            caozuo();
        }else{
            System.out.println("管理员身份登录失败");
        }
    }
    public void cut2(){
        if(bao.xsdenglu()){
            xscaozuo();
        }else{
            System.out.println("学生身份登录失败");
        }
    }

        //新图书入库（管理员操作）
        public  void insertNewbook() {
            System.out.println("请输入要插入的图书编号：");
            int book_id=scanner.nextInt();
            System.out.println("请输入要插入的图书名称：");
            String  book_name=scanner.next();
            Book book=new Book(book_id,book_name);
            if(bao.insertBook(book)){
                System.out.println("新图书入库成功！");
            }else{
                System.out.println("新图书入库失败！");
            }
        }

        //修改图书（管理员操作）
        public void updatebook(){
            System.out.println("请输入要修改的图书的编号：");
            int book_id=scanner.nextInt();
            System.out.println("查询到该图书信息：");
            bao.searchBook(book_id);
            System.out.println("请输入修改后的图书名称：");
            String  book_name=scanner.next();
            Book book=new Book(book_id,book_name);
            if(bao.bookUpdate(book_id,book)){
                System.out.println("图书信息修改成功！");
            }else{
                System.out.println("图书信息修改失败！");
            }
        }

        //删除图书（管理员操作）
        public void deleteBook() {
            System.out.println("请输入要删除的图书编号");
            int book_id=scanner.nextInt();
            if(bao.delelteBook(book_id)){
                System.out.println("删除成功！");
            }else{
                System.out.println("删除失败！");
            }
        }

        //借书（学生操作）
        public  void borrow(){
            System.out.println("请输入该学生的id：");
            int user_id=scanner.nextInt();
            System.out.println("请输入要借的图书id：");
            int book_id=scanner.nextInt();
            borrow borrow=new borrow(user_id,book_id);
            if(bao.borrow(borrow)){
                System.out.println("借书成功");
            }else{
                System.out.println("借书失败");
            }

        }

        //还书（学生操作）
        public  void return_book() {
            System.out.println("请输入该学生的id：");
            int user_id=scanner.nextInt();
            System.out.println("请输入要还的图书id：");
            int book_id=scanner.nextInt();
            borrow borrow=new borrow(user_id,book_id);
            if(bao.return_book(borrow)){
                System.out.println("还书成功");
            }else{
                System.out.println("还书失败");
            }
        }

        //所有学生信息（管理员操作）
        public  void inof() {
            bao.userInof();
        }
}